import axios from 'axios';

// 创建 axios 实例
const api = axios.create({
  baseURL: 'http://47.120.40.5:5000/api',
  timeout: 5000,
  headers: {
    'Content-Type': 'application/json'
  }
});

// 请求拦截器
api.interceptors.request.use(
  config => {
    // 从 localStorage 获取 token
    const token = localStorage.getItem('token');
    if (token) {
      config.headers['Authorization'] = token;
    }
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

// 响应拦截器
api.interceptors.response.use(
  response => {
    return response.data;
  },
  error => {
    // 如果是 401 错误，可能是 token 过期
    if (error.response && error.response.status === 401) {
      // 清除过期的 token
      localStorage.removeItem('token');
      localStorage.removeItem('tokenExpiresAt');
    }
    return Promise.reject(error);
  }
);

// Token 相关的 API
export const tokenApi = {
  // 获取 token
  getToken() {
    return api.get('/token');
  },

  // 更新 token
  updateToken() {
    return api.post('/token');
  },

  // 检查 token 是否过期
  isTokenExpired() {
    const expiresAt = localStorage.getItem('tokenExpiresAt');
    if (!expiresAt) return true;
    const isExpired = new Date(expiresAt) <= new Date();
    if (!isExpired) {
      //console.log('yes');
    }
    return isExpired;
  },

  // 保存 token 信息
  saveToken(token, expiresAt) {
    localStorage.setItem('token', token);
    localStorage.setItem('tokenExpiresAt', expiresAt);
  }
};

export default api; 